package com.th.supcom.pds.domain.pojo;

import java.util.Date;

import net.carefx.framework.translate.Translatable;
import net.carefx.framework.translate.annotation.TranslateField;

import org.slf4j.Logger;
import org.slf4j.LoggerFactory;

/**
 * InpPhamDispenseDetail Pojo对象.
 * 
 * 住院摆药明细表.
 */
public class InpPhamDispenseDetail implements java.io.Serializable, Translatable
{
    private static final long serialVersionUID = 1L;

    /** 主键. */
    private Long m_inpPhamDispenseDetailId;

    /** 请领单据号. */
    private String m_applyNo;

    /** 请领明细主键. */
    private Long m_inpPhamApplyDetailId;

    /** 患者住院流水号. */
    private Long m_paiVisitId;

    /** 出入库单据号. */
    private String m_stockNo;

    /** 收费单据号. */
    private Long m_rekNo;

    /** 护理单元. */
    @TranslateField (translatorName = "organizationTranslator", targetFieldName = "m_nurseUnitName")
    private String m_nurseUnit;
    private String m_nurseUnitName;

    /** 患者所在病区. */
    @TranslateField (translatorName = "organizationTranslator", targetFieldName = "m_wardName")
    private String m_ward;
    private String m_wardName;

    /** 床位号. */
    private String m_bedNo;

    /** 医嘱序号. */
    private Long m_orderNo;

    /** 医嘱子序号. */
    private Long m_orderSubNo;

    /** 药品标准码. */
    private String m_phamStdCode;

    /** 药品名称. */
    private String m_phamName;

    /** 药品规格. */
    private String m_phamSpec;

    /** 剂量单位. */
    @TranslateField (fullQualifiedName = "TJ0022", targetFieldName = "m_phamUnitName")
    private String m_phamUnit;
    private String m_phamUnitName;

    /** 申请数量单位. */
    @TranslateField (fullQualifiedName = "TJ0024", targetFieldName = "m_dispenseUnitName")
    private String m_dispenseUnit;
    private String m_dispenseUnitName;

    /** 用量. */
    private Double m_dosage;

    /** 请领数量 */
    private Integer m_applyAmount;

    /** 执行数量. */
    private Integer m_dispenseAmount;

    /** 执行药房. */
    @TranslateField (translatorName = "organizationTranslator", targetFieldName = "m_performDispensaryName")
    private String m_performDispensary;
    private String m_performDispensaryName;

    /** 应收. */
    private Double m_costs;

    /** 实收. */
    private Double m_charges;

    /** 0=未记账 1=已记账 2=退药已申请 3=已退费 . */
    @TranslateField (fullQualifiedName = "PDS0026", targetFieldName = "m_chargeIndicatorName")
    private String m_chargeIndicator;
    private String m_chargeIndicatorName;

    /** A=已请领 B=分拣 C=已发药 D=退药已申请 E=已退费未退药 F=已退药入库. */
    @TranslateField (fullQualifiedName = "PDS0027", targetFieldName = "m_dispenseIndicatorName")
    private String m_dispenseIndicator;
    private String m_dispenseIndicatorName;

    /** 摆药人. */
    @TranslateField (translatorName = "empNameTranslator", targetFieldName = "m_dispenseByName")
    private String m_dispenseBy;
    private String m_dispenseByName;

    /** 摆药时间. */
    private Date m_dispenseDatetime;
    /** 摆药开始时间. */
    private Date m_startTime;
    /** 摆药结束时间. */
    private Date m_endTime;
    

    /** 核对发药人. */
    @TranslateField (translatorName = "empNameTranslator", targetFieldName = "m_checkByName")
    private String m_checkBy;
    private String m_checkByName;

    /** 核对时间. */
    private Date m_checkDatetime;

    /** 退药申请对应请领单据号. */
    private String m_withdrawApplyNo;

    /** N=无药退药 Y=有药退药. */
    @TranslateField (fullQualifiedName = "PDS0028", targetFieldName = "m_withdrawTypeName")
    private String m_withdrawType;
    private String m_withdrawTypeName;

    /** 配送目的地. */
    @TranslateField (translatorName = "organizationTranslator", targetFieldName = "m_destinationName")
    private String m_destination;
    private String m_destinationName;

    /** 药品批次号. */
    private String m_phamBatchNo;

    /** 药品有效期. */
    private Date m_expiryDate;

    /** 药品申请单位对应最小可用单位换算系数 */
    private Integer m_factor;

    /** 医嘱执行次数 */
    private Integer m_scheduleCount;   

    /**
     * 默认构造器 .
     */
    public InpPhamDispenseDetail ()
    {
    }

    /**
     * 获取applyAmount 请领数量
     * 
     * @return the applyAmount
     */
    public Integer getApplyAmount ()
    {

        return m_applyAmount;
    }

    /**
     * 获取applyAmount 请领数量
     * 
     * @param applyAmount the applyAmount to set.
     */
    public void setApplyAmount (Integer applyAmount)
    {

        m_applyAmount = applyAmount;
    }

    /**
     * 获取药品剂量单位名称
     * 
     * @return
     */
    public String getPhamUnitName ()
    {
        return m_phamUnitName;
    }

    /**
     * 设置药品剂量单位名称
     * 
     * @param phamUnitName
     */
    public void setPhamUnitName (String phamUnitName)
    {
        m_phamUnitName = phamUnitName;
    }

    /**
     * 获取用量属性.
     * 
     */
    public Double getDosage ()
    {
        return m_dosage;
    }

    /**
     * 设置用量属性.
     * 
     * @param dosage.
     */
    public void setDosage (Double dosage)
    {
        m_dosage = dosage;
    }

    public String getDispenseUnit ()
    {

        return m_dispenseUnit;
    }

    public void setDispenseUnit (String dispenseUnit)
    {

        m_dispenseUnit = dispenseUnit;
    }

    public String getDispenseUnitName ()
    {

        return m_dispenseUnitName;
    }

    public void setDispenseUnitName (String dispenseUnitName)
    {

        m_dispenseUnitName = dispenseUnitName;
    }

    /**
     * 获取医嘱执行次数
     * 
     * @return
     */
    public Integer getScheduleCount ()
    {
        return m_scheduleCount;
    }

    /**
     * 设置医嘱执行次数
     * 
     * @param scheduleCount
     */
    public void setScheduleCount (Integer scheduleCount)
    {

        m_scheduleCount = scheduleCount;
    }

    /**
     * 获取药品换算系数
     * 
     * @return
     */
    public Integer getFactor ()
    {

        return m_factor;
    }

    /**
     * 设置药品换算系数
     * 
     * @param factor
     */
    public void setFactor (Integer factor)
    {

        m_factor = factor;
    }

    /**
     * 获取主键属性.
     * 
     */
    public Long getInpPhamDispenseDetailId ()
    {
        return m_inpPhamDispenseDetailId;
    }

    /**
     * 设置主键属性.
     * 
     * @param inpPhamDispenseDetailId.
     */
    public void setInpPhamDispenseDetailId (Long inpPhamDispenseDetailId)
    {
        m_inpPhamDispenseDetailId = inpPhamDispenseDetailId;
    }

    /**
     * 获取请领单据号属性.
     * 
     */
    public String getApplyNo ()
    {
        return m_applyNo;
    }

    /**
     * 设置请领单据号属性.
     * 
     * @param applyNo.
     */
    public void setApplyNo (String applyNo)
    {
        m_applyNo = applyNo;
    }

    /**
     * 获取请领明细主键属性.
     * 
     */
    public Long getInpPhamApplyDetailId ()
    {
        return m_inpPhamApplyDetailId;
    }

    /**
     * 设置请领明细主键属性.
     * 
     * @param inpPhamApplyDetailId.
     */
    public void setInpPhamApplyDetailId (Long inpPhamApplyDetailId)
    {
        m_inpPhamApplyDetailId = inpPhamApplyDetailId;
    }

    /**
     * 获取患者住院流水号属性.
     * 
     */
    public Long getPaiVisitId ()
    {
        return m_paiVisitId;
    }

    /**
     * 设置患者住院流水号属性.
     * 
     * @param paiVisitId.
     */
    public void setPaiVisitId (Long paiVisitId)
    {
        m_paiVisitId = paiVisitId;
    }

    /**
     * 获取属性出入库单据号.
     * 
     */
    public String getStockNo ()
    {
        return m_stockNo;
    }

    /**
     * 设置属性出入库单据号.
     * 
     * @param stockNo.
     */
    public void setStockNo (String stockNo)
    {
        m_stockNo = stockNo;
    }

    /**
     * 获取属性.
     * 
     */
    public Long getRekNo ()
    {
        return m_rekNo;
    }

    /**
     * 设置属性.
     * 
     * @param reckNo.
     */
    public void setRekNo (Long rekNo)
    {
        m_rekNo = rekNo;
    }

    /**
     * 获取护理单元属性.
     * 
     */
    public String getNurseUnit ()
    {
        return m_nurseUnit;
    }

    /**
     * 设置护理单元属性.
     * 
     * @param nurseUnit.
     */
    public void setNurseUnit (String nurseUnit)
    {
        m_nurseUnit = nurseUnit;
    }

    /**
     * 获取患者所在病区属性.
     * 
     */
    public String getWard ()
    {
        return m_ward;
    }

    /**
     * 设置患者所在病区属性.
     * 
     * @param ward.
     */
    public void setWard (String ward)
    {
        m_ward = ward;
    }

    /**
     * 获取床位号属性.
     * 
     */
    public String getBedNo ()
    {
        return m_bedNo;
    }

    /**
     * 设置床位号属性.
     * 
     * @param bedNo.
     */
    public void setBedNo (String bedNo)
    {
        m_bedNo = bedNo;
    }

    /**
     * 获取医嘱序号属性.
     * 
     */
    public Long getOrderNo ()
    {
        return m_orderNo;
    }

    /**
     * 设置医嘱序号属性.
     * 
     * @param orderNo.
     */
    public void setOrderNo (Long orderNo)
    {
        m_orderNo = orderNo;
    }

    /**
     * 获取医嘱子序号属性.
     * 
     */
    public Long getOrderSubNo ()
    {
        return m_orderSubNo;
    }

    /**
     * 设置医嘱子序号属性.
     * 
     * @param orderSubNo.
     */
    public void setOrderSubNo (Long orderSubNo)
    {
        m_orderSubNo = orderSubNo;
    }

    /**
     * 获取药品标准码属性.
     * 
     */
    public String getPhamStdCode ()
    {
        return m_phamStdCode;
    }

    /**
     * 设置药品标准码属性.
     * 
     * @param phamStdCode.
     */
    public void setPhamStdCode (String phamStdCode)
    {
        m_phamStdCode = phamStdCode;
    }

    /**
     * 获取药品名称属性.
     * 
     */
    public String getPhamName ()
    {
        return m_phamName;
    }

    /**
     * 设置药品名称属性.
     * 
     * @param phamName.
     */
    public void setPhamName (String phamName)
    {
        m_phamName = phamName;
    }

    /**
     * 获取药品规格属性.
     * 
     */
    public String getPhamSpec ()
    {
        return m_phamSpec;
    }

    /**
     * 设置药品规格属性.
     * 
     * @param phamSpec.
     */
    public void setPhamSpec (String phamSpec)
    {
        m_phamSpec = phamSpec;
    }

    /**
     * 获取药品单位属性.
     * 
     */
    public String getPhamUnit ()
    {
        return m_phamUnit;
    }

    /**
     * 设置药品单位属性.
     * 
     * @param phamUnit.
     */
    public void setPhamUnit (String phamUnit)
    {
        m_phamUnit = phamUnit;
    }

    /**
     * 获取执行数量属性.
     * 
     */
    public Integer getDispenseAmount ()
    {
        return m_dispenseAmount;
    }

    /**
     * 设置执行数量属性.
     * 
     * @param dispenseAmount.
     */
    public void setDispenseAmount (Integer dispenseAmount)
    {
        m_dispenseAmount = dispenseAmount;
    }

    /**
     * 获取执行药房属性.
     * 
     */
    public String getPerformDispensary ()
    {
        return m_performDispensary;
    }

    /**
     * 设置执行药房属性.
     * 
     * @param performDispensary.
     */
    public void setPerformDispensary (String performDispensary)
    {
        m_performDispensary = performDispensary;
    }

    /**
     * 获取应收属性.
     * 
     */
    public Double getCosts ()
    {
        return m_costs;
    }

    /**
     * 设置应收属性.
     * 
     * @param costs.
     */
    public void setCosts (Double costs)
    {
        m_costs = costs;
    }

    /**
     * 获取实收属性.
     * 
     */
    public Double getCharges ()
    {
        return m_charges;
    }

    /**
     * 设置实收属性.
     * 
     * @param charges.
     */
    public void setCharges (Double charges)
    {
        m_charges = charges;
    }

    /**
     * 获取0=未记账 1=已记账 2=退药已申请 3=已退费 属性.
     * 
     */
    public String getChargeIndicator ()
    {
        return m_chargeIndicator;
    }

    /**
     * 设置0=未记账 1=已记账 2=退药已申请 3=已退费 属性.
     * 
     * @param chargeIndicator.
     */
    public void setChargeIndicator (String chargeIndicator)
    {
        m_chargeIndicator = chargeIndicator;
    }

    /**
     * 获取A=已请领 B=分拣 C=已发药 D=退药已申请 E=已退费未退药 F=已退药入库属性.
     * 
     */
    public String getDispenseIndicator ()
    {
        return m_dispenseIndicator;
    }

    /**
     * 设置A=已请领 B=分拣 C=已发药 D=退药已申请 E=已退费未退药 F=已退药入库属性.
     * 
     * @param dispenseIndicator.
     */
    public void setDispenseIndicator (String dispenseIndicator)
    {
        m_dispenseIndicator = dispenseIndicator;
    }

    /**
     * 获取摆药人属性.
     * 
     */
    public String getDispenseBy ()
    {
        return m_dispenseBy;
    }

    /**
     * 设置摆药人属性.
     * 
     * @param dispenseBy.
     */
    public void setDispenseBy (String dispenseBy)
    {
        m_dispenseBy = dispenseBy;
    }

    /**
     * 获取摆药时间属性.
     * 
     */
    public Date getDispenseDatetime ()
    {
        if (m_dispenseDatetime == null)
        {
            return null;
        }
        return (Date) m_dispenseDatetime.clone ();

    }

    /**
     * 设置摆药时间属性.
     * 
     * @param dispenseDatetime.
     */
    public void setDispenseDatetime (Date dispenseDatetime)
    {
        if (dispenseDatetime == null)
        {
            m_dispenseDatetime = null;
        }
        else
        {
            m_dispenseDatetime = (Date) dispenseDatetime.clone ();
        }

    }

    /**
     * 获取核对发药人属性.
     * 
     */
    public String getCheckBy ()
    {
        return m_checkBy;
    }

    /**
     * 设置核对发药人属性.
     * 
     * @param checkBy.
     */
    public void setCheckBy (String checkBy)
    {
        m_checkBy = checkBy;
    }

    /**
     * 获取核对时间属性.
     * 
     */
    public Date getCheckDatetime ()
    {
        if (m_checkDatetime == null)
        {
            return null;
        }
        return (Date) m_checkDatetime.clone ();

    }

    /**
     * 设置核对时间属性.
     * 
     * @param checkDatetime.
     */
    public void setCheckDatetime (Date checkDatetime)
    {
        if (checkDatetime == null)
        {
            m_checkDatetime = null;
        }
        else
        {
            m_checkDatetime = (Date) checkDatetime.clone ();
        }

    }

    /**
     * 获取退药申请对应请领单据号属性.
     * 
     */
    public String getWithdrawApplyNo ()
    {
        return m_withdrawApplyNo;
    }

    /**
     * 设置退药申请对应请领单据号属性.
     * 
     * @param withdrawApplyNo.
     */
    public void setWithdrawApplyNo (String withdrawApplyNo)
    {
        m_withdrawApplyNo = withdrawApplyNo;
    }

    /**
     * 获取N=无药退药 Y=有药退药属性.
     * 
     */
    public String getWithdrawType ()
    {
        return m_withdrawType;
    }

    /**
     * 设置N=无药退药 Y=有药退药属性.
     * 
     * @param withdrawType.
     */
    public void setWithdrawType (String withdrawType)
    {
        m_withdrawType = withdrawType;
    }

    /**
     * 获取配送目的地属性.
     * 
     */
    public String getDestination ()
    {
        return m_destination;
    }

    /**
     * 设置配送目的地属性.
     * 
     * @param destination.
     */
    public void setDestination (String destination)
    {
        m_destination = destination;
    }

    /**
     * 获取药品批次号属性.
     * 
     */
    public String getPhamBatchNo ()
    {
        return m_phamBatchNo;
    }

    /**
     * 设置药品批次号属性.
     * 
     * @param phamBatchNo.
     */
    public void setPhamBatchNo (String phamBatchNo)
    {
        m_phamBatchNo = phamBatchNo;
    }

    /**
     * 获取药品有效期属性.
     * 
     */
    public Date getExpiryDate ()
    {
        if (m_expiryDate == null)
        {
            return null;
        }
        return (Date) m_expiryDate.clone ();

    }

    /**
     * 设置药品有效期属性.
     * 
     * @param expiryDate.
     */
    public void setExpiryDate (Date expiryDate)
    {
        if (expiryDate == null)
        {
            m_expiryDate = null;
        }
        else
        {
            m_expiryDate = (Date) expiryDate.clone ();
        }

    }

    /**
     * 打印字符串.
     * 
     * @return 打印.
     */
    public String toString ()
    {
        StringBuffer sb = new StringBuffer (100);
        sb.append ("---------------------------------- start ----------------------------------");
        sb.append ("inpPhamDispenseDetailId:" + m_inpPhamDispenseDetailId + " applyNo:" + m_applyNo + " inpPhamApplyDetailId:" + m_inpPhamApplyDetailId);
        sb.append ("stockNo:" + m_stockNo + " rekNo:" + m_rekNo + " paiVisitId:" + m_paiVisitId);
        sb.append ("nurseUnit:" + m_nurseUnit + " ward:" + m_ward + " bedNo:" + m_bedNo);
        sb.append ("orderNo:" + m_orderNo + " orderSubNo:" + m_orderSubNo + " phamStdCode:" + m_phamStdCode);
        sb.append ("phamName:" + m_phamName + " phamSpec:" + m_phamSpec + " phamUnit:" + m_phamUnit);
        sb.append ("dispenseAmount:" + m_dispenseAmount + " performDispensary:" + m_performDispensary + " costs:" + m_costs);
        sb.append ("charges:" + m_charges + " chargeIndicator:" + m_chargeIndicator + " dispenseIndicator:" + m_dispenseIndicator);
        sb.append ("dispenseBy:" + m_dispenseBy + " dispenseDatetime:" + m_dispenseDatetime + " checkBy:" + m_checkBy);
        sb.append ("checkDatetime:" + m_checkDatetime + " withdrawApplyNo:" + m_withdrawApplyNo + " withdrawType:" + m_withdrawType);
        sb.append ("destination:" + m_destination + " phamBatchNo:" + m_phamBatchNo + " expiryDate:" + m_expiryDate);

        sb.append ("----------------------------------  end  ----------------------------------");
        return sb.toString ();
    }

    /** 日志记录器. */
    public static final Logger s_logger = LoggerFactory.getLogger (InpPhamDispenseDetail.class);

    /** 公司版权信息. */
    public static final String copyright = "Copyright 2014, TH Supcom Corporation";

    /** 提交路径. */
    public static final String SCC_BRANCH = "$URL$";

    /** 提交日期. */
    public static final String SCC_LAST_MODIFICATION_DATE = "$Date$";

    /** 最终修改人员. */
    public static final String SCC_LAST_MODIFIER_NAME = "$Author$";

    /** 最终版本号. */
    public static final String SCC_REVISION = "$Revision$";

    public String getNurseUnitName ()
    {
        return m_nurseUnitName;
    }

    public void setNurseUnitName (String nurseUnitName)
    {
        m_nurseUnitName = nurseUnitName;
    }

    public String getWardName ()
    {
        return m_wardName;
    }

    public void setWardName (String wardName)
    {
        m_wardName = wardName;
    }

    public String getPerformDispensaryName ()
    {
        return m_performDispensaryName;
    }

    public void setPerformDispensaryName (String performDispensaryName)
    {
        m_performDispensaryName = performDispensaryName;
    }

    public String getChargeIndicatorName ()
    {
        return m_chargeIndicatorName;
    }

    public void setChargeIndicatorName (String chargeIndicatorName)
    {
        m_chargeIndicatorName = chargeIndicatorName;
    }

    public String getDispenseIndicatorName ()
    {
        return m_dispenseIndicatorName;
    }

    public void setDispenseIndicatorName (String dispenseIndicatorName)
    {
        m_dispenseIndicatorName = dispenseIndicatorName;
    }

    public String getDispenseByName ()
    {
        return m_dispenseByName;
    }

    public void setDispenseByName (String dispenseByName)
    {
        m_dispenseByName = dispenseByName;
    }

    public String getCheckByName ()
    {
        return m_checkByName;
    }

    public void setCheckByName (String checkByName)
    {
        m_checkByName = checkByName;
    }

    public String getWithdrawTypeName ()
    {
        return m_withdrawTypeName;
    }

    public void setWithdrawTypeName (String withdrawTypeName)
    {
        m_withdrawTypeName = withdrawTypeName;
    }

    public String getDestinationName ()
    {
        return m_destinationName;
    }

    public void setDestinationName (String destinationName)
    {
        m_destinationName = destinationName;
    }

    public Date getStartTime ()
    {
    
        return m_startTime;
    }

    public void setStartTime (Date startTime)
    {
    
        m_startTime = startTime;
    }

    public Date getEndTime ()
    {
    
        return m_endTime;
    }

    public void setEndTime (Date endTime)
    {
    
        m_endTime = endTime;
    }

}